package MyRedis

/**
StringResult 字符串返回结构
*/
type StringResult struct {
	Str string
	Err error
}

func NewStringResult(str string, err error) *StringResult {
	return &StringResult{Str: str, Err: err}
}

func (r *StringResult) Unwrap() string {
	if r.Err != nil {
		panic(r.Err)
	}
	return r.Str
}

func (r *StringResult) UnwrapDefault(defaultString string) string {
	if r.Err != nil {
		return defaultString
	}
	return r.Str
}

/**
UnwrapFunc 当存在err时 执行函数
*/
func (r *StringResult) UnwrapFunc(f func() string) string {
	if r.Err != nil {
		return f()
	}
	return r.Str
}
